Caching large amounts of data can help improve the overall performance of many computing systems. For instance, data caching is one approach that is often used to improve the performance of web-based systems. Web-based systems, such as large-scale enterprise level web portals, for example, typically integrate many backend systems that provide a variety of services to customers or clients via web servers. These services may utilize substantial amounts of data, such that the performance of these web-based systems may be improved with data caching.
Most existing software cache systems for web-based applications are usually implemented between clients and application servers, or at the client side. Such systems typically use either primary memory or storage devices for cache, and often suffer from one or more of the following disadvantages: 1) when application data sizes are very large, transferring data sets from servers to clients tends to slow the performance of the network, while clients usually only need to retrieve a portion of the overall data; 2) most web-based data caches are session dependent, meaning that each given data cache is typically user-dependent and generally cannot be reused after the user's session, and/or cannot be reused by different applications; 3) most existing systems do not support pagination (e.g., when a user wants to view only a portion of the data at a time) of large data sets in an efficient manner; and 4) existing cursor functionalities provided by most relational database technologies typically require application programs to hold connections to databases for the entire time a queried data set is needed, which can result in a considerable waste of resources during those periods of time when no operations occur in relation to such data sets.
Accordingly, there exists a need for improved software data cache systems that seek to overcome these and other problems in the industry.